## 练习 2：测试字符串是否为 合法标识符
# **需求**
# 1. 编写用于测试 字符串(str01) 的函数  def check_var(str01):
# 2. 函数用于确定 字符串 是否为合法标识符
# 3. 字符串不能为关键字
# 4. 第一个字符必须是 字母或下划线 _
# 5. 剩下的字符可以是字母或数字或下划线
# 6. 合法: return True    不合法  return False
import keyword,string
first_chs = string.ascii_letters + "_"  # 首字符的要求
other_chs = string.digits + first_chs  # 其他字符的要求

def check_var(str01):  # str01 = "y123aaaa"  str01[1:]
    if str01 in keyword.kwlist:
        return False  # 是关键字，所以不是合法的标识符
    if str01[0] not in first_chs:
        return False
    for item in str01[1:]:
        # 剩余元素中只要有一个不合规，则整个标识符不合规
        if item not in other_chs:
            return False
    return True
if __name__ == '__main__':
    print(check_var("def"))  # False
    print(check_var("num01"))  # True
